package shake.el;

import javax.el.ArrayELResolver;
import javax.el.BeanELResolver;
import javax.el.CompositeELResolver;
import javax.el.ELResolver;
import javax.el.ListELResolver;
import javax.el.MapELResolver;
import javax.el.ResourceBundleELResolver;

import shake.annotation.ApplicationScoepd;
import shake.annotation.Component;
import shake.annotation.Install;

import com.google.inject.Inject;

@Install(precedence = Install.BUILD_IN)
@ApplicationScoepd
@Component(type = ELResolver.class)
public class ShakeCompositeELResolver extends CompositeELResolver {

	@Inject
	public ShakeCompositeELResolver(ComponentElResolver resolver,
			VariableElResolver valureResolver) {
		this.add(resolver);
		this.add(valureResolver);
		this.add(new MapELResolver());
		this.add(new ListELResolver());
		this.add(new ArrayELResolver());
		this.add(new ResourceBundleELResolver());
		this.add(new BeanELResolver());
	}

}
